#pragma once

#include "IObject.h"
struct IXcpVideoFrameProvider :
	public IObject
{
public: 
	virtual XBOOL InFrameServerMode() = 0;
	virtual HRESULT GetVideoFrameSurface(struct IPALSurface * *, class CXString *) = 0;
	virtual XBOOL IsVideoFrameDirty() = 0;
	virtual XUINT32 GetWidth() = 0;
	virtual XUINT32 GetHeight() = 0;
	virtual HRESULT OnHWDraw2D(void *, unsigned int, const struct XRECTF_WH *, class CMILMatrix *, const struct XRECTF_WH *) = 0;
	virtual HRESULT OnHWDrawProjection(void *, unsigned int, const struct XRECTF_WH *, class CMILMatrix4x4 *, const struct XRECTF_WH *) = 0;
	virtual HRESULT OnHWDrawFullScreen(void *, unsigned int) = 0;
	virtual void SetOpacity(float) = 0;
	virtual struct IMediaUpdateListener * GetCompositionThreadListener() = 0;
	virtual HRESULT SetOverlapState(unsigned int) = 0;
	virtual unsigned int HasOverlapElement() = 0;
	virtual HRESULT SetFullScreen(unsigned int) = 0;
	virtual unsigned int InFullScreenMode() = 0;
	virtual HRESULT RemoveDCompVisual() = 0;
};
